/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * PresionCocada.java
 *
 * Created on 14-jun-2012, 11:32:59
 */
package com.camachosanchez.gui;

import com.camachosanchez.bean.*;
import com.camachosanchez.controler.jdbc.ControlCambioNeumaticoJdbcControler;
import com.camachosanchez.controler.jdbc.TalleresJdbcControler;
import com.camachosanchez.controler.jpa.EstadosMedicionJpaController;
import com.camachosanchez.gui.combo.MyComboBoxEditor;
import com.camachosanchez.gui.combo.MyComboBoxRenderer;
import com.camachosanchez.gui.textfield.MaxLengthTextDocument;
import com.camachosanchez.util.Constantes;
import com.camachosanchez.util.GUIUtil;
import com.camachosanchez.util.JPAUtil;
import java.util.*;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;

/**
 *
 * @author Rolando
 */
public class PresionCocada extends javax.swing.JDialog {

    private EntityManagerFactory emf = null;
    private Vehiculos vehiculo;
    private List<Integer> posiciones = null;
    private List<ModelosBandaNeumatico> modelos = null;
    HashMap<String, Short> hm = new HashMap<String, Short>();
    List<EstadosMedicion> listaEstados;
    List<String> descripcionEstadosMedicion;

    /** Creates new form PresionCocada */
    public PresionCocada(java.awt.Frame parent, boolean modal, Vehiculos vehiculo) {
        super(parent, modal);
        initComponents();
        this.emf = JPAUtil.getEntityManagerFactory();
        this.vehiculo = vehiculo;
        this.setSize(950, 550);
        setLocationRelativeTo(null);
        GUIUtil.addEscapeKey(this);
        EstadosMedicionJpaController emc = new EstadosMedicionJpaController(null);
        listaEstados = emc.findEstadosMedicionEntities();
        descripcionEstadosMedicion = new ArrayList<String>();
        if (listaEstados != null) {
            for (EstadosMedicion estadosMedicion : listaEstados) {
                hm.put(estadosMedicion.getNombre(), estadosMedicion.getId());
                descripcionEstadosMedicion.add(estadosMedicion.getNombre());
            }
        }
        if (vehiculo != null) {
            txtPlaca.setText(vehiculo.getPlaca().toUpperCase());
            txtCodigo.setText(vehiculo.getCodBarras().toUpperCase());
            MaxLengthTextDocument doc_kilometros = new MaxLengthTextDocument();
            doc_kilometros.setMaxChars(10, Constantes.DECIMALES);
            txtKilometraje.setDocument(doc_kilometros);
//            TalleresJpaController talleres = new TalleresJpaController(null);
//            List<Talleres> lista_talleres = talleres.findTalleresEntities();
            TalleresJdbcControler daoJdbcT = new TalleresJdbcControler();
            List<Talleres> lista_talleres = daoJdbcT.findAll();
            comboFlotillas.setModel(new DefaultComboBoxModel(lista_talleres.toArray()));
            dateFechaEjecucion.setDate(new Date());
            dateSiguienteControl.setDate(new Date());
            ControlCambioNeumaticoJdbcControler daoJdbc = new ControlCambioNeumaticoJdbcControler();
            List<DetalleControlCambioNeumatico> detalles = daoJdbc.findUltimoDetalleControlCambio(vehiculo.getId());
//            EntityManager em = emf.createEntityManager();
//            Query control_cambio = em.createQuery("SELECT C FROM ControlCambioNeumatico C WHERE C.idVehiculo.id=:idVehiculo ORDER BY C.id DESC");
//            control_cambio.setParameter("idVehiculo", vehiculo.getId());
//            control_cambio.setMaxResults(1);
//            List lista = control_cambio.getResultList();
            if (!detalles.isEmpty()) {
//                ControlCambioNeumatico cambio = (ControlCambioNeumatico) lista.get(0);
//                List<DetalleControlCambioNeumatico> detalles = cambio.getDetalleControlCambioNeumaticoList();
//                ordernarListaPorPosicion(detalles, "posicion");
                int contador = 0;
                for (DetalleControlCambioNeumatico detalleControlCambioNeumatico : detalles) {
                    if (detalleControlCambioNeumatico.getTipo() >= 0) {
                        contador++;
                    }
                }
                Object[][] data = new Object[contador][12];
                posiciones = new ArrayList<Integer>();
                modelos = new ArrayList<ModelosBandaNeumatico>();

                if (contador > 0) {
                    for (int i = 0, j = 0; i < detalles.size(); i++) {
                        DetalleControlCambioNeumatico temp = detalles.get(i);
                        if (temp.getTipo() >= 0) {
                            int posicion = temp.getPosicion();
                            posiciones.add(posicion);
                            if (posicion <= 0) {
                                data[j][0] = "R";
                            } else {
                                data[j][0] = posicion;
                            }
                            data[j][1] = temp.getIdNeumatico().getCodigo();
                            data[j][2] = (temp.getIdNeumatico().getIdMarca() == null ? "" : temp.getIdNeumatico().getIdMarca().getNombre());
                            ModelosBandaNeumatico modelo = temp.getIdNeumatico().getIdModelo();
                            data[j][3] = modelo.getMedida();
                            modelos.add(modelo);
                            int num = temp.getIdNeumatico().getNumRenovaciones();
                            //data[j][4] = num > 0 ? "√" : "";
                            data[j][4] = num;
                            data[j][5] = 0.0;
                            data[j][6] = 0.0;
                            data[j][7] = 0.0;
                            data[j][8] = 0.0;
                            if (listaEstados != null && !listaEstados.isEmpty()) {
                                data[j][9] = listaEstados.get(0).getNombre();
                            } else {
                                data[j][9] = "";
                            }
                            data[j][10] = "";
                            data[j][11] = temp.getIdNeumatico().getId();
                            j++;
                        }
                    }
                    tabla.setData(data);
                    TableColumn col = tabla.getTabla().getColumnModel().getColumn(9);
                    col.setCellEditor(new MyComboBoxEditor(descripcionEstadosMedicion));
                    col.setCellRenderer(new MyComboBoxRenderer(descripcionEstadosMedicion));
                } else {
//                    jButton1.setEnabled(false);
                    btnGuardar.setEnabled(false);
                }
            } else {
//                jButton1.setEnabled(false);
                btnGuardar.setEnabled(false);
            }
            tabla.setAnchoColumnas();
        } else {
//            jButton1.setEnabled(false);
            btnGuardar.setEnabled(false);
        }
        dateFechaEjecucion.setMaxSelectableDate(new Date());
        dateSiguienteControl.setMinSelectableDate(new Date());
    }

    private void guardar() {
        tabla.cancelarEdicionCelda();
        EntityManager em = null;
        try {
            em = emf.createEntityManager();
            EntityTransaction tx = em.getTransaction();
            tx.begin();
            ComprobacionBandaRodamientoPresion comprobacion = new ComprobacionBandaRodamientoPresion();
            Vehiculos vehiculoTmp = (Vehiculos) em.getReference(Vehiculos.class, vehiculo.getId());

            comprobacion.setIdTaller((Talleres) comboFlotillas.getSelectedItem());
            Date fecha_ejecucion = dateFechaEjecucion.getDate();
            if (fecha_ejecucion != null) {
                comprobacion.setFechaEjecucion(fecha_ejecucion);
            } else {
                JOptionPane.showMessageDialog(this, "Se debe especificar la fecha en la que se está realizando el registro de control.", "Datos incompletos", JOptionPane.WARNING_MESSAGE);
                dateFechaEjecucion.requestFocusInWindow();
                return;
            }
            if (dateFechaEjecucion.getDate().after(new Date())) {
                JOptionPane.showMessageDialog(this, "La fecha  de ejecución no puede ser posterior a la fecha actual.", "Datos incorrectos", JOptionPane.WARNING_MESSAGE);
                return;
            }
            if (dateSiguienteControl.getDate().before(new Date())) {
                JOptionPane.showMessageDialog(this, "La fecha del siguiente control no puede ser anterior a la fecha actual.", "Datos incorrectos", JOptionPane.WARNING_MESSAGE);
                return;
            }
            double kilometraje;
            try {
                kilometraje = Double.parseDouble(txtKilometraje.getText());
                comprobacion.setKilometraje(kilometraje);
            } catch (NumberFormatException ex) {
                JOptionPane.showMessageDialog(this, "El valor ingresado para el kilometraje debe ser un número.", "Datos incorrectos", JOptionPane.WARNING_MESSAGE);
                txtKilometraje.requestFocusInWindow();
                return;
            }
            comprobacion.setIdUsuario(Constantes.currentUser);
            comprobacion.setFechaSgteReporte(dateSiguienteControl.getDate());
            comprobacion.setObservaciones(txpComentarios.getText());
            comprobacion.setFechaInsercionActualizacion(new Date());
            comprobacion.setTipoComprobacion(0);
            //Detalles
            DefaultTableModel data = tabla.getData();
            int rows = data.getRowCount();
            int i = 0;
//            int id_neumaticos[] = new int[rows];
            Boolean kmNuevo = false;
            List<MedicionComprobacion> mediciones = new ArrayList<MedicionComprobacion>();
            while (i < rows) {
                MedicionComprobacion medicion = new MedicionComprobacion();
                medicion.setPosicion(posiciones.get(i));
                medicion.setIdModeloBanda(modelos.get(i));
                medicion.setNroReencauches(Short.parseShort(data.getValueAt(i, 4).toString()));
                Double alturaCentro;
                try {
                    alturaCentro = Double.parseDouble(data.getValueAt(i, 7).toString());
                    medicion.setAlturaCentro(alturaCentro);
                } catch (NumberFormatException ex) {
                    JOptionPane.showMessageDialog(this, "El valor de la altura central en la fila " + (i + 1) + " no es el correcto.", "Datos incorrectos", JOptionPane.WARNING_MESSAGE);
                    return;
                }
                Double alturaDerecha;
                try {
                    alturaDerecha = Double.parseDouble(data.getValueAt(i, 6).toString());
                    medicion.setAlturaDerecha(alturaDerecha);
                } catch (NumberFormatException ex) {
                    JOptionPane.showMessageDialog(this, "El valor de la altura central en la fila " + (i + 1) + " no es el correcto.", "Datos incorrectos", JOptionPane.WARNING_MESSAGE);
                    return;
                }
                Double alturaIzquierda;
                try {
                    alturaIzquierda = Double.parseDouble(data.getValueAt(i, 8).toString());
                    medicion.setAlturaIzquierda(alturaIzquierda);
                } catch (NumberFormatException ex) {
                    JOptionPane.showMessageDialog(this, "El valor de la altura central en la fila " + (i + 1) + " no es el correcto.", "Datos incorrectos", JOptionPane.WARNING_MESSAGE);
                    return;
                }
                double presion;
                try {
                    presion = Double.parseDouble(data.getValueAt(i, 5).toString());
                    medicion.setPresion(presion);
                } catch (NumberFormatException ex) {
                    JOptionPane.showMessageDialog(this, "El valor de la presión en la fila " + (i + 1) + " no es el correcto.", "Datos incorrectos", JOptionPane.WARNING_MESSAGE);
                    return;
                }
                medicion.setComentario(data.getValueAt(i, 10).toString());
                medicion.setIdUsuario(Constantes.currentUser);
                medicion.setFechaInsercionActualizacion(new Date());
                medicion.setEstado(true);
                EstadosMedicion estadoM = new EstadosMedicion(hm.get(data.getValueAt(i, 9).toString()));
                medicion.setIdEstado(estadoM);
//                id_neumaticos[i] = Integer.parseInt(data.getValueAt(i, 10).toString());

                Neumaticos neumatico = (Neumaticos) em.getReference(Neumaticos.class, Integer.parseInt(data.getValueAt(i, 11).toString()));
                medicion.setIdComprobacionBandaRodamiento(comprobacion);

                //kilometraje del neumático
                if (neumatico.getKmAlMontaje() != null && neumatico.getKmAlMontaje() >= 0) {//si está siendo revisaado
                    //en el mismo vehículo de montaje
                    int kmTotal = (neumatico.getKmTotal() == null) ? 0 : neumatico.getKmTotal();
                    int kmMontaje = neumatico.getKmAlMontaje();
                    if (kmMontaje >= kilometraje && kmNuevo == false) {
                        //JOptionPane.showMessageDialog(this, "El kilometraje de este vehículo, debe ser mayor que el kilometraje del movimiento anterior de este mismo vehículo.", "Datos incorrectos", JOptionPane.WARNING_MESSAGE);
                        DialogoKilometrajeNuevo guiKmNuevo = new DialogoKilometrajeNuevo(Principal.getInstance(), true);
                        guiKmNuevo.setVisible(true);
                        if (guiKmNuevo.getGuardar()) {
                            kmNuevo = true;
                            neumatico.setKmTotal(kmTotal + (int) kilometraje);
                        } else {
                            kmNuevo = false;
                            txtKilometraje.setText(kmMontaje + "");
                            txtKilometraje.requestFocusInWindow();
                            txtKilometraje.selectAll();
                            return;
                        }
                        guiKmNuevo.dispose();
                    } else if (kmMontaje >= kilometraje && kmNuevo) {
                        neumatico.setKmTotal(kmTotal + (int) kilometraje);
                    } else {
                        neumatico.setKmTotal(kmTotal + ((int) kilometraje - kmMontaje));
                    }
                    neumatico.setKmAlMontaje((int) kilometraje);
                }

                //Labrados y presión del neumático
                neumatico.setPresionActual((int) presion);
                neumatico.setLabradoCentral(alturaCentro);
                neumatico.setLabradoExterior(alturaDerecha);
                neumatico.setLabradoInterno(alturaIzquierda);
                neumatico.setIdEstadoMedicion(estadoM);
                medicion.setIdNeumatico(neumatico);

                mediciones.add(medicion);
                i++;
            }
//            i = 0;
//            for (MedicionComprobacion medicionComprobacion : mediciones) {
//                Neumaticos neumatico = (Neumaticos) em.getReference(Neumaticos.class, id_neumaticos[i]);
//                medicionComprobacion.setIdComprobacionBandaRodamiento(comprobacion);
//                
//                //kilometraje del neumático
//                int kmTotal = (neumatico.getKmTotal() == null)? 0:neumatico.getKmTotal();
//                neumatico.setKmTotal(kmTotal + (Integer.parseInt(String.valueOf(kilometraje)) - neumatico.getKmAlMontaje()));
//                    
//                medicionComprobacion.setIdNeumatico(neumatico);
//                i++;
//            }
            if (kmNuevo) {
                vehiculoTmp.setKmActual(vehiculo.getKmActual() + (int) kilometraje);
            } else {
                vehiculoTmp.setKmActual((int) kilometraje);
            }
            comprobacion.setIdVehiculo(vehiculoTmp);
            comprobacion.setMedicionComprobacionList(mediciones);
            em.persist(comprobacion);
            tx.commit();
            JOptionPane.showMessageDialog(this, "El registro de control ha finalizado correctamente.", "Operación finalizada", JOptionPane.INFORMATION_MESSAGE);
            dispose();
        } catch (Exception e) {
            if (em.getTransaction().isActive()) {
                em.getTransaction().rollback();
            }
            JOptionPane.showMessageDialog(Principal.getInstance(), e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
        } finally {
            if (em != null) {
                em.close();
            }
        }
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jToolBar1 = new javax.swing.JToolBar();
        jPanel5 = new javax.swing.JPanel();
        btnGuardar = new javax.swing.JButton();
        jPanel1 = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        tabla = new com.camachosanchez.gui.table.TablaControlPresionCocada();
        jTabbedPane1 = new javax.swing.JTabbedPane();
        jPanel4 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        txpComentarios = new javax.swing.JTextPane();
        jPanel6 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        txtPlaca = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        txtCodigo = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        txtKilometraje = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        dateFechaEjecucion = new com.toedter.calendar.JDateChooser();
        jLabel5 = new javax.swing.JLabel();
        dateSiguienteControl = new com.toedter.calendar.JDateChooser();
        jLabel3 = new javax.swing.JLabel();
        comboFlotillas = new javax.swing.JComboBox();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle(".:: Control de Presión y Banda de Rodamiento ::.");

        jToolBar1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        jToolBar1.setFloatable(false);
        jToolBar1.setRollover(true);
        jToolBar1.setOpaque(false);

        jPanel5.setBackground(new java.awt.Color(255, 255, 255));
        jPanel5.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

        btnGuardar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/camachosanchez/recursos/24_save.png"))); // NOI18N
        btnGuardar.setToolTipText("Guardar");
        btnGuardar.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        btnGuardar.setFocusable(false);
        btnGuardar.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
        btnGuardar.setMaximumSize(new java.awt.Dimension(22, 22));
        btnGuardar.setMinimumSize(new java.awt.Dimension(22, 22));
        btnGuardar.setPreferredSize(new java.awt.Dimension(22, 22));
        btnGuardar.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btnGuardar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnGuardarActionPerformed(evt);
            }
        });
        jPanel5.add(btnGuardar);

        jToolBar1.add(jPanel5);

        getContentPane().add(jToolBar1, java.awt.BorderLayout.PAGE_START);

        jPanel2.setLayout(new java.awt.BorderLayout());
        jPanel2.add(tabla, java.awt.BorderLayout.CENTER);

        jTabbedPane1.setBackground(new java.awt.Color(188, 211, 226));

        jPanel4.setLayout(new java.awt.BorderLayout());

        txpComentarios.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txpComentariosKeyPressed(evt);
            }
        });
        jScrollPane1.setViewportView(txpComentarios);

        jPanel4.add(jScrollPane1, java.awt.BorderLayout.CENTER);

        jTabbedPane1.addTab("Comentarios", jPanel4);

        jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Información básica", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 12))); // NOI18N
        jPanel6.setMinimumSize(new java.awt.Dimension(100, 68));
        jPanel6.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 10));

        jLabel1.setText("Número de placa:");
        jPanel6.add(jLabel1);

        txtPlaca.setEditable(false);
        txtPlaca.setFont(new java.awt.Font("Tahoma", 0, 12));
        txtPlaca.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        txtPlaca.setMinimumSize(new java.awt.Dimension(30, 0));
        txtPlaca.setPreferredSize(new java.awt.Dimension(100, 21));
        jPanel6.add(txtPlaca);

        jLabel6.setText("Código:");
        jPanel6.add(jLabel6);

        txtCodigo.setEditable(false);
        txtCodigo.setFont(new java.awt.Font("Tahoma", 0, 12));
        txtCodigo.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        txtCodigo.setMinimumSize(new java.awt.Dimension(30, 0));
        txtCodigo.setPreferredSize(new java.awt.Dimension(100, 21));
        jPanel6.add(txtCodigo);

        jLabel2.setText("Kilometraje:");
        jPanel6.add(jLabel2);

        txtKilometraje.setMinimumSize(new java.awt.Dimension(30, 0));
        txtKilometraje.setPreferredSize(new java.awt.Dimension(100, 21));
        jPanel6.add(txtKilometraje);

        jLabel4.setText("Fecha de Ejecución:");
        jPanel6.add(jLabel4);

        dateFechaEjecucion.setDateFormatString("dd/MM/yyyy");
        dateFechaEjecucion.setPreferredSize(new java.awt.Dimension(90, 21));
        jPanel6.add(dateFechaEjecucion);

        jLabel5.setText("Siguiente control:");
        jPanel6.add(jLabel5);

        dateSiguienteControl.setDateFormatString("dd/MM/yyyy");
        dateSiguienteControl.setPreferredSize(new java.awt.Dimension(100, 21));
        jPanel6.add(dateSiguienteControl);

        jLabel3.setText("Taller / Patio:");
        jPanel6.add(jLabel3);

        comboFlotillas.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
        comboFlotillas.setPreferredSize(new java.awt.Dimension(200, 20));
        jPanel6.add(comboFlotillas);

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 740, Short.MAX_VALUE)
                    .addComponent(jTabbedPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 740, Short.MAX_VALUE)
                    .addComponent(jPanel6, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 740, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, 232, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);

        pack();
    }// </editor-fold>//GEN-END:initComponents

private void btnGuardarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnGuardarActionPerformed
// TODO add your handling code here:
    guardar();
}//GEN-LAST:event_btnGuardarActionPerformed

private void txpComentariosKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txpComentariosKeyPressed
// TODO add your handling code here:
    String caracteres = this.txpComentarios.getText();
    if (caracteres.length() >= 200) {
        evt.consume();
    }
}//GEN-LAST:event_txpComentariosKeyPressed
    /**
     * @param args the command line arguments
     */
//    public static void main(String args[]) {
//        /* Set the Nimbus look and feel */
//        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
//        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
//         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
//         */
//        try {
//            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
//                if ("Nimbus".equals(info.getName())) {
//                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
//                    break;
//                }
//            }
//        } catch (ClassNotFoundException ex) {
//            java.util.logging.Logger.getLogger(PresionCocada.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
//        } catch (InstantiationException ex) {
//            java.util.logging.Logger.getLogger(PresionCocada.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
//        } catch (IllegalAccessException ex) {
//            java.util.logging.Logger.getLogger(PresionCocada.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
//        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
//            java.util.logging.Logger.getLogger(PresionCocada.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
//        }
//        //</editor-fold>
//
//        /* Create and display the dialog */
//        java.awt.EventQueue.invokeLater(new Runnable() {
//
//            public void run() {
//                PresionCocada dialog = new PresionCocada(new javax.swing.JFrame(), true);
//                dialog.addWindowListener(new java.awt.event.WindowAdapter() {
//
//                    @Override
//                    public void windowClosing(java.awt.event.WindowEvent e) {
//                    }
//                });
//                dialog.setVisible(true);
//            }
//        });
//    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnGuardar;
    private javax.swing.JComboBox comboFlotillas;
    private com.toedter.calendar.JDateChooser dateFechaEjecucion;
    private com.toedter.calendar.JDateChooser dateSiguienteControl;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JToolBar jToolBar1;
    private com.camachosanchez.gui.table.TablaControlPresionCocada tabla;
    private javax.swing.JTextPane txpComentarios;
    private javax.swing.JTextField txtCodigo;
    private javax.swing.JTextField txtKilometraje;
    private javax.swing.JTextField txtPlaca;
    // End of variables declaration//GEN-END:variables
}
